package com.hornet.commons.mybatis;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import tk.mybatis.mapper.common.ConditionMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
 * 继承自己的MyMapper
 * @author    杨浩泉
 * @date      2016年4月20日
 */
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T>, ConditionMapper<T> {
	
	/**
	 * 批量删除
	 * @param ids 主键
	 * @return
	 */
	int deleteBatchByKeys(Long[] ids) ;
	
	/**
	 * 分页查询
	 * @param entity 实体对象
	 * @return
	 */
	List<T> selectByPage(T entity) ;
	
	/**
	 * 检查字段的值是否已存在
	 * @param id ID可以为NULL，主要用于update操作
	 * @param field coulum名
	 * @param fieldVal column值
	 * @return
	 */
	int existsFileldValue(@Param("id") Long id, @Param("field") String field, @Param("fieldVal") String fieldVal) ;
	
}
